﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BO;

namespace Site_CamaraTibau
{
    public partial class OrdemDoDia : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!Page.IsPostBack)
                {
                    SessaoOrdemDoDiaBO.Listar(ddlDataOrdem);
                }
            }
            catch (Exception)
            {

                throw;
            }
        }

        #region Contexto
        ModeloContainer bco = new ModeloContainer();

        public class tempProjetoLei
        {
            public string Numero {get; set;}
            public string Autores { get; set; }
            public string Entidade { get; set; }
            public string Ementa { get; set; }
            public string Status { get; set; }
            public string Movimento { get; set; }
        }

        #endregion

        #region Funcoes
        public void carregaOradores()
        {
            try
            {
                if (ddlDataOrdem.SelectedIndex > 0)
                {
                    int id = int.Parse(ddlDataOrdem.SelectedValue.ToString());

                    var oradores = (from a in bco.SessaoOrdemDoDiaOradors
                                    where a.idSessaoOrdemDoDia == id
                                    orderby a.Posicao ascending
                                    select new
                                    {
                                        ID = a.id,
                                        Posi = a.Posicao,
                                        Nome =  a.Vereador.nome + " (" + a.Vereador.Partido.sigla + ")"
                                    }
                                    ).ToList();

                    if (oradores.Count > 0)
                    {
                        div_oradores.Visible = true;
                        rptOradores.DataSource = oradores;
                        rptOradores.DataBind();
                    }
                }
                else
                {
                    div_oradores.Visible = false;
                    rptOradores.DataSource = null;
                    rptOradores.DataBind();
                }
            }
            catch (Exception)
            {

                throw;
            }
        }
        public void carregaProjetosLei()
        {
            try
            {
                if (ddlDataOrdem.SelectedIndex > 0)
                {
                    int id = int.Parse(ddlDataOrdem.SelectedValue.ToString());

                    var objs = (from a in bco.SessaoOrdemDoDiaProjetoLeis where a.idSessaoOrdemDoDia == id select a).ToList();

                    List<tempProjetoLei> listagem = new List<tempProjetoLei>();

                    foreach (var item in objs)
                    {
                        tempProjetoLei obj = new tempProjetoLei();

                        obj.Entidade = item.ProjetoLei.Entidade.Descricao;
                        obj.Ementa = item.ProjetoLei.Ementa;
                        obj.Movimento = item.Movimento;
                        obj.Numero = item.ProjetoLei.Numero;
                        obj.Status = item.ProjetoLei.Status;

                        var autores = (from a in bco.ProjetoLeiAutors where a.idProjetoLei == item.idProjetoLei select a).ToList();

                        if (autores.Count > 0)
                        {
                            for (int i = 0; i < autores.Count; i++)
                            {
                                obj.Autores += autores[i].Vereador.nome + " (" + autores[i].Vereador.Partido.sigla + ")";

                                if (i == autores.Count - 2)
                                    obj.Autores += " e ";
                                else if (i == autores.Count - 1)
                                    obj.Autores += "";
                                else
                                    obj.Autores += ", ";
                            }
                        }
                        else
                            obj.Autores = item.ProjetoLei.Entidade.Descricao;

                        listagem.Add(obj);
                    }

                    if (objs.Count > 0)
                    {
                        div_projetolei.Visible = true;
                        rptProjetosLei.DataSource = listagem;
                        rptProjetosLei.DataBind();
                    }
                }
                else
                {
                    div_projetolei.Visible = false;
                    rptProjetosLei.DataSource = null;
                    rptProjetosLei.DataBind();
                }
            }
            catch (Exception)
            {

                throw;
            }
        }
        public void carregaRequerimentos()
        {
            try
            {
                if (ddlDataOrdem.SelectedIndex > 0)
                {
                    int id = int.Parse(ddlDataOrdem.SelectedValue.ToString());

                    var objs = (from a in bco.SessaoOrdemDoDiaRequerimentoes
                                where a.idSessaoOrdemDoDia == id
                                select new
                                {
                                    ID = a.id,
                                    Numero = a.Requerimento.Numero,
                                    Autor = a.Requerimento.Vereador.nome + " (" + a.Requerimento.Vereador.Partido.sigla + ")",
                                    Assunto = a.Requerimento.Assuntto,
                                    Movimento = ""
                                }).ToList();


                    if (objs.Count > 0)
                    {
                        div_requerimentos.Visible = true;
                        rptRequerimentos.DataSource = objs;
                        rptRequerimentos.DataBind();
                    }
                    else
                    {
                        div_requerimentos.Visible = false;
                        rptRequerimentos.DataSource = null;
                        rptRequerimentos.DataBind();
                    }
                }
                else
                {
                    div_requerimentos.Visible = false;
                    rptRequerimentos.DataSource = null;
                    rptRequerimentos.DataBind();
                }
            }
            catch (Exception)
            {

                throw;
            }
        }
        public void carregaSelecionado()
        {
            try
            {
                carregaOradores();
                carregaProjetosLei();
                carregaRequerimentos();
            }
            catch (Exception)
            {
                
                throw;
            }
        }
        #endregion

        protected void ddlDataOrdem_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                carregaSelecionado();
            }
            catch (Exception)
            {
                
                throw;
            }
        }
    }
}